var FormAction = Base.extend({

    _submitBtn: null,
    _processIcon: null,

    constructor: function()
    {
        this._submitBtn = $( '#btnSubmit' );
        this._processIcon = $( '#submitIcon' );
        $( '#requestForm' ).validate( this._prepareValidatorSettings() );
    },

    _prepareValidatorSettings: function()
    {
        return {
            onfocusout: false,
            onkeyup: false,
            submitHandler: handler( this, '_onSubmit' ),
            rules:
            {
                name:
                {
                    required: true
                },
                phone:
                {
                    required: true
                },
                email:
                {
                    required: true,
                    email: true
                }
            },

            messages:
            {
                name:
                {
                    required:  "Пожалуйста, укажите Имя."
                },
                email:
                {
                    email:    "Пожалуйста, укажите корректный Email.",
                    required: "Пожалуйста, укажите Email."
                },
                phone:
                {
                    required: "Пожалуйста, укажите Телефон."
                }
            }
        };
    },

    _onSubmit: function( form )
    {
        if ( !this._submitBtn.hasClass( 'disable' ) )
        {
            this._submitBtn.addClass( 'disable' );
            this._processIcon.show();

            var params = {
                'name':    $( 'input[name=name]' ).val(),
                'email':   $( 'input[name=email]' ).val(),
                'phone':   $( 'input[name=phone]' ).val(),
                'message': $( 'textarea[name=message]' ).val()
            };

             $.ajax(
             {
                type: 'post',
                url: '/request.php',
                data: params,
                success: handler( this, '_successForm' )
             });
        }
    },

    _successForm: function( data )
    {
        this._submitBtn.removeClass( 'disable' );
        this._processIcon.hide();

        if ( data == '1' )
        {
            alert( "Ваша заявка успешно отправлена!" );
        }
        else
        {
            alert( "Введенные данные не корректны. Заявка не была отправлена." );
        }
    }
});